====== NCQ (Native Command Queuing) ======
NCQ, ou Native Command Queuing est un protocole SATA qui permet, en gros, d'envoyer plusieurs requêtes en même temps a votre disque dur, afin qu'il réponde à ces requêtes dans le meilleur ordre possible (le disque va lire les donnés en suivant le chemin le plus court possible).

Cela permet un gain de performance. ([[http://techreport.com/articles.x/8624/3]])

Si votre carte mère et votre disque dur permettent l'utilisation de NCQ (souvent désactivé par défaut), ce serait dommage de ne pas en profiter !

===== Support =====
L'utilisation de NCQ passe par l'activation du mode SATA **AHCI** dans le bios.
Pour pouvoir utiliser ce mode, il faut que ces éléments soient compatibles :
  * Le système d'exploitation, c'est le cas pour Ubuntu et Windows (nativement pour Vista et +, requiert un driver pour Windows XP).
<note important>Attention, si un autre système d'exploitation est installé à côté d'Ubuntu et qu'il ne gère pas le mode AHCI, il ne pourra plus démarrer tant que vous n'aurez pas désactivé l'AHCI.</note>
  * La carte mère et le bios : certains bios ne permettent pas l'activation de l'AHCI
  * Le disque lui même

===== Mise en place =====
Effectuer les étapes suivantes :
==== Est ce que mon disque dur supporte NCQ ? ====
Pour le savoir faites (en remplacent /dev/sda en fonction du disque à tester) :
<code>
sudo hdparm -I /dev/sda | grep NCQ
</code>

Résultat positif :
<code>
	   *	Native Command Queueing (NCQ)
</code>

... et négatif :
<code>
	   	Native Command Queueing (NCQ)
</code>
(ou rien)

Si le résultat est négatif, vous ne pouvez rien faire à part changer de disque dur.

==== Est ce que l'AHCI est activé ? ====
Le mieux est d'aller voir directement dans le bios.

Vous pouvez aussi voir si Ubuntu considère que vos disques SATA comme des disques IDE :
<note important>je ne suis pas certain de l'efficacité de ce test avec toutes les cartes mères.</note>
<code>
$ lshw

<...>
        *-ide:0
             description: IDE interface
             product: 82801JI (ICH10 Family) 4 port SATA IDE Controller #1
             vendor: Intel Corporation
<...>
</code>
... et avec l'AHCI activé :
<code>
$ lshw

<...>
        *-storage
             description: SATA controller
             product: 82801JI (ICH10 Family) SATA AHCI Controller
             vendor: Intel Corporation
<...>
</code>

Si l'AHCI est désactivé... activez le dans le bios de votre carte mère (généralement option "SATA Mode").

==== Est ce que NCQ est en cours d'utilisation ? ====
Si les deux points précédents sont remplis, NCQ devrait normalement être en cours d'utilisation par Ubuntu.
Une petite vérification s'impose:
<code>
dmesg | grep NCQ
</code>

Le résultat est positif si vous obtenez **(depth 31/32)**, par exemple :
<code>
[    1.851473] ata1.00: 976773168 sectors, multi 16: LBA48 NCQ (depth 31/32)
</code>
Dans ce cas, félicitation, vous avez activé le mode NCQ !
<note tip>Une fois le mode AHCI activé, vous pouvez aussi faire d'autres trucs cools comme le hot plug (branchement à chaud de disques durs SATA) !</note>

Et le résultat est négatif si vous obtenez **(depth 0/32)**, par exemple :
<code>
[    1.851473] ata1.00: 976773168 sectors, multi 16: LBA48 NCQ (depth 0/32)
</code>
Si ça ne marche pas... Vérifiez que le mode AHCI de votre matériel est bien supporté par Linux: [[https://ata.wiki.kernel.org/index.php/Hardware,_driver_status]]

===== Liens =====
[[https://ata.wiki.kernel.org/index.php/Hardware,_driver_status|Support de l'AHCI par Linux]]

[[http://fr.wikipedia.org/wiki/Native_Command_Queuing|NCQ expliqué par Wikipédia]]

[[http://techreport.com/articles.x/8624/3|Petit benchmark]]

===== Contributeurs =====
--- //[[:utilisateurs:congelli501|congelli501]] Le 20/06/2010, 00:24//